// samsting : this file is auto create.

#ifndef ALIYUN_Ess_DescribeScalingConfigurationsResponse_H_
#define ALIYUN_Ess_DescribeScalingConfigurationsResponse_H_

#include "core/acs_response.h"

namespace aliyun { namespace Ess {

class DescribeScalingConfigurationsResponse : public AcsResponse {
public:
  DescribeScalingConfigurationsResponse();

  class ScalingConfiguration {
    friend class DescribeScalingConfigurationsResponse;
  public:

    class DataDisk {
      friend class DescribeScalingConfigurationsResponse;
      friend class ScalingConfiguration;
    public:
      int  GetSize(void) const;
      const string& GetCategory(void) const;
      const string& GetSnapshotId(void) const;
      const string& GetDevice(void) const;
    private:
      int    Size_;
      string Category_;
      string SnapshotId_;
      string Device_;
    }; // DataDisk 

    const std::vector<DataDisk>& GetDataDisks(void) const;
    const string& GetScalingConfigurationId(void) const;
    const string& GetScalingConfigurationName(void) const;
    const string& GetScalingGroupId(void) const;
    const string& GetImageId(void) const;
    const string& GetInstanceType(void) const;
    const string& GetSecurityGroupId(void) const;
    const string& GetInternetChargeType(void) const;
    int  GetInternetMaxBandwidthIn(void) const;
    int  GetInternetMaxBandwidthOut(void) const;
    const string& GetSystemDiskCategory(void) const;
    const string& GetLifecycleState(void) const;
    const string& GetCreationTime(void) const;
  private:
    std::vector<DataDisk> DataDisks_;
    string ScalingConfigurationId_;
    string ScalingConfigurationName_;
    string ScalingGroupId_;
    string ImageId_;
    string InstanceType_;
    string SecurityGroupId_;
    string InternetChargeType_;
    int    InternetMaxBandwidthIn_;
    int    InternetMaxBandwidthOut_;
    string SystemDiskCategory_;
    string LifecycleState_;
    string CreationTime_;
  }; // ScalingConfiguration 

  const std::vector<ScalingConfiguration>& GetScalingConfigurations(void) const;
  int  GetTotalCount(void) const;
  int  GetPageNumber(void) const;
  int  GetPageSize(void) const;

private:
  std::vector<ScalingConfiguration> ScalingConfigurations_;
  int    TotalCount_;
  int    PageNumber_;
  int    PageSize_;

protected:
  const char* BaseKey(void);
  void         UnmarshallerMap(std::map<string, string>& response_map);

};

} } // namespace aliyun { namespace Ess {

#endif // #ifndef ALIYUN_Ess_DescribeScalingConfigurationsResponse_H_

// end of file 
